<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<link title="David R. Hanson" href="http://drh.home.dyndns.org" rev="made">
		<link href="style.css" rel="stylesheet" type="text/css" media="all">
		<title>Contents for C Interfaces and Implementations</title>
	</head>

	<body>
		<h1>Contents</h1>
		<p>Click on the parenthesized links to browse the named source files. (These files have no comments, because the book explains them.)</p>
		<ol>
			<li><b>Introduction</b><br>
				Literate Programs (<a href="http://cii.googlecode.com/svn/trunk/examples/double.c">double.c</a>)<br>
				Programming Style<br>
				Efficiency
			<li><b>Interfaces and Implementations</b><br>
				Interfaces (<a href="http://cii.googlecode.com/svn/trunk/include/arith.h">arith.h</a>)<br>
				Implementations (<a href="http://cii.googlecode.com/svn/trunk/src/arith.c">arith.c</a>)
			<li><b>Atoms</b> <em><a href="http://ciibook.webhop.net/pdf/atom.pdf">Download/view this chapter</a> </em><font size="-1">(PDF, 52K)</font><br>
				
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/atom.h">atom.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/atom.c">atom.c</a>)
			<li><b>Exceptions and Assertions</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/except.h">except.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/except.c">except.c</a>)<br>
				Assertions (<a href="http://cii.googlecode.com/svn/trunk/include/assert.h">assert.h</a>)
			<li><b>Memory Management</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/mem.h">mem.h</a>)<br>
				Production Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/mem.c">mem.c</a>)<br>
				Checking Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/memchk.c">memchk.c</a>)
			<li><b>More Memory Management</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/arena.h">arena.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/arena.c">arena.c</a>)
			<li><b>Lists</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/list.h">list.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/list.c">list.c</a>)
			<li><b>Tables</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/table.h">table.h</a>)<br>
				Example: Word Frequencies (<a href="http://cii.googlecode.com/svn/trunk/examples/wf.c">wf.c</a>, <a href="http://cii.googlecode.com/svn/trunk/examples/getword.h">getword.h</a>, <a href="http://cii.googlecode.com/svn/trunk/examples/getword.c">getword.c</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/table.c">table.c</a>)
			<li><b>Sets</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/set.h">set.h</a>)<br>
				Example: Cross-Reference Listings (<a href="http://cii.googlecode.com/svn/trunk/examples/xref.c">xref.c</a>, <a href="http://cii.googlecode.com/svn/trunk/examples/getword.h">getword.h</a>, <a href="http://cii.googlecode.com/svn/trunk/examples/getword.c">getword.c</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/set.c">set.c</a>)<br>
				<small>Member Operations &middot; Set Operations</small>
			<li><b>Dynamic Arrays</b><br>
				Interfaces (<a href="http://cii.googlecode.com/svn/trunk/include/array.h">array.h</a>, <a href="http://cii.googlecode.com/svn/trunk/include/arrayrep.h">arrayrep.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/array.c">array.c</a>)
			<li><b>Sequences</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/seq.h">seq.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/seq.c">seq.c</a>)
			<li><b>Rings</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/ring.h">ring.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/ring.c">ring.c</a>)
			<li><b>Bit Vectors</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/bit.h">bit.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/bit.c">bit.c</a>)<br>
				<small>Member Operations &middot; Comparisons &middot; Set Operations</small>
			<li><b>Formatting</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/fmt.h">fmt.h</a>)<br>
				<small>Formatting Functions &middot; Conversion Functions</small><br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/fmt.c">fmt.c</a>)<br>
				<small>Formatting Functions &middot; Conversion Functions</small>
			<li><b>Low-Level Strings</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/str.h">str.h</a>)<br>
				Example: Printing Identifiers (<a href="http://cii.googlecode.com/svn/trunk/examples/ids.c">ids.c</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/str.c">str.c</a>)<br>
				<small>String Operations &middot; Searching Strings &middot; Conversion Functions</small>
			<li><b>High-Level Strings</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/text.h">text.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/text.c">text.c</a>)<br>
				<small>String Operations &middot; Memory Management &middot; Searching Strings &middot; Conversion Functions</small>
			<li><b>Extended-Precision Arithmetic</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/xp.h">xp.h</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/xp.c">xp.c</a>)<br>
				<small>Addition and Subtraction &middot; Multiplication &middot; Division and Comparison &middot; Shifting &middot; String Conversions</small>
			<li><b>Arbitrary-Precision Arithmetic</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/ap.h">ap.h</a>)<br>
				Example: A Calculator (<a href="http://cii.googlecode.com/svn/trunk/examples/calc.c">calc.c</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/ap.c">ap.c</a>)<br>
				<small>Negation and Multiplication &middot; Addition and Subtraction &middot; Division &middot; Exponentiation &middot; Comparisons &middot; Convenience Functions &middot; Shifting &middot; String and Integer Conversions</small>
			<li><b>Multiple-Precision Arithmetic</b><br>
				Interface (<a href="http://cii.googlecode.com/svn/trunk/include/mp.h">mp.h</a>)<br>
				Example: Another Calculator (<a href="http://cii.googlecode.com/svn/trunk/examples/mpcalc.c">mpcalc.c</a>)<br>
				Implementation (<a href="http://cii.googlecode.com/svn/trunk/src/mp.c">mp.c</a>)<br>
				<small>Conversions &middot; Unsigned Arithmetic &middot; Signed Arithmetic &middot; Convenience Functions &middot; Comparisons and Logical Operations &middot; String Conversions</small>
			<li><b>Threads</b><br>
				Interfaces<br>
				<small>Threads (<a href="http://cii.googlecode.com/svn/trunk/include/thread.h">thread.h</a>) &middot; General Semaphores (<a href="http://cii.googlecode.com/svn/trunk/include/sem.h">sem.h</a>) &middot; Synchronous Communication Channels (<a href="http://cii.googlecode.com/svn/trunk/include/chan.h">chan.h</a>)</small><br>
				Examples<br>
				<small>Sorting Concurrently (<a href="http://cii.googlecode.com/svn/trunk/examples/sort.c">sort.c</a>) &middot; Critical Regions (<a href="http://cii.googlecode.com/svn/trunk/examples/spin.c">spin.c</a>) &middot; Generating Primes (<a href="http://cii.googlecode.com/svn/trunk/examples/sieve.c">sieve.c</a>)</small><br>
				Implementations<br>
				<small>Synchronous Communication Channels (<a href="http://cii.googlecode.com/svn/trunk/src/chan.c">chan.c</a>) &middot; Threads (<a href="http://cii.googlecode.com/svn/trunk/src/thread.c">thread.c</a>) &middot; Thread Creation and Context-Switching (<a href="http://cii.googlecode.com/svn/trunk/src/thread.c">thread.c</a>, <a href="http://cii.googlecode.com/svn/trunk/src/swtch.s">swtch.s</a>) &middot; Preemption &middot; General Semaphores (<a href="http://cii.googlecode.com/svn/trunk/src/thread.c">thread.c</a>) &middot; Context-Switching on the MIPS and ALPHA</small>
		</ol>
		<dl>
			<dd><b>Interface Summary</b><br>
				<b>Bibliography</b><br>
				<b>Index</b>
		</dl>
		<p><a href="./">Back to the CII home page</a>.</p>
		<hr>
		<address><a href="http://drh.home.dyndns.org">David Hanson</a><br>
			$Revision: 180 $ $Date: 2007-06-12 16:44:57 +0000 (Tue, 12 Jun 2007) $</address>
	</body>

</html>